﻿using HamcoWcs.Entitys.SubTasks;
using HamcoWcs.Models.Devices;
using HamcoWcs.Models.NodeInfos;

namespace HamcoWcs.Contract.ContractSrm
{
    public interface ISrmTaskFinder
    {
        /// <summary>
        /// 堆垛机任务查找的策略名
        /// </summary>
        string Policy { get; }
        /// <summary>
        /// 查找对应Srm的任务
        /// </summary>
        /// <param name="srm">堆垛机实体</param>
        /// <returns></returns>
        SubTask Find(SrmDto srm);

        /// <summary>
        /// 子任务预处理，选择堆垛机和判断是否需要中转储位
        /// </summary>
        /// <param name="aisle"></param>
        void PickSrm(NodeInfoDto aisle);
    }
}
